﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using TakbisBilgiSorgu_v1.wsUygulamaYetkiServis;
using System.Configuration;
using System.IO;

namespace TakbisBilgiSorgu_v1
{
    public partial class WebForm5 : System.Web.UI.Page
    {
        UygulamaYetkiServis uygulamaYetkiServis = new UygulamaYetkiServis();

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    if (((Kullanici)Session["kullanici"]) == null)
                    {
                        MesajVer(ConfigurationManager.AppSettings["GirisYapmalisinizMesaji"].ToString());
                        Response.Redirect("Login.aspx");
                    }
                    else
                    {
                        if (uygulamaYetkiServis.GrupYetkiVarMiKontrolYeni(((Kullanici)Session["kullanici"]).GrupID, "Haberler.aspx") && ((Kullanici)Session["kullanici"]).AktifMi == 1)
                            DuyuruDoldur();
                        else
                        {
                            MesajVer(ConfigurationManager.AppSettings["YetkinizYokMesaji"].ToString());
                            Response.Redirect("AnaSayfa.aspx");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["YetkiServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void MesajVer(string mesaj)
        {
            ClientScript.RegisterStartupScript(this.GetType(), " Uyarı.. ", "ShowPopup('" + mesaj + "');", true);
        }

        protected void DuyuruDoldur()
        {
            try
            {
                Session["duyuru"] = uygulamaYetkiServis.AktifDuyuruGetir().ToList();
                if (Session["duyuru"] == null || ((List<Duyuru>)Session["duyuru"]).Count == 0)
                    MesajVer("Duyuru Bulunamadı.");
                else
                {
                    gvDuyuru.DataSource = (List<Duyuru>)Session["duyuru"];
                    gvDuyuru.DataBind();
                    ViewState["duyuru"] = (List<Duyuru>)Session["duyuru"];
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                    if (ex.ToString().Contains("Sunucu isteği işleyemedi."))
                        MesajVer(ConfigurationManager.AppSettings["YetkiServisHatasi"].ToString());
                    else
                        MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
                }
            }
        }

        protected void gvDuyuru_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                if (ViewState["duyuru"] != null)
                {
                    gvDuyuru.DataSource = ViewState["duyuru"];
                    gvDuyuru.PageIndex = e.NewPageIndex;
                }
                else
                    gvDuyuru.DataSource = null;
                gvDuyuru.DataBind();
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvDuyuru_RowCreated(object sender, GridViewRowEventArgs e)
        {
            SatirIsaretle(e);
        }

        protected void SatirIsaretle(GridViewRowEventArgs e)
        {
            try
            {
                //mause gridin üzerine geldiğinde satırlar işaretlensin diye yaptım
                if (e.Row.RowType != DataControlRowType.DataRow)
                    return;
                // eger yaratilan satir farkliysa data satirindan buradan cik 
                e.Row.Attributes.Add("onmouseover", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#F0FFFF'");
                // mouse overina bu stil attribute'ini ekle 
                e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=this.originalstyle;");
                // mouse out ise eski stile don
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvDuyuru_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.Header)
                {
                    e.Row.Cells[1].Text = "Başlık";
                    e.Row.Cells[2].Text = "Başlık İçerik";
                    e.Row.Cells[3].Text = "İçerik";
                    e.Row.Cells[4].Text = "Aktif Mi";
                    e.Row.Cells[5].Text = "Kayıt Tarih";
                }

                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "AktifMi")) == "2")
                        e.Row.ForeColor = System.Drawing.Color.Red;
                    e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(gvDuyuru, "Select$" + e.Row.RowIndex);
                    e.Row.ToolTip = "Click to select this row.";
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }

        protected void gvDuyuru_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (gvDuyuru.Rows.Count > 1)
                {
                    foreach (GridViewRow row in gvDuyuru.Rows)
                    {
                        if (row.RowIndex != gvDuyuru.SelectedIndex)
                            row.ToolTip = string.Empty;
                        else
                        {
                            Session["GuncellenenDuyuru"] = null;
                            Session["GuncellenenDuyuruID"] = Convert.ToInt64(gvDuyuru.DataKeys[gvDuyuru.SelectedIndex].Values[0]);
                            Session["GuncellenenDuyuru"] = ((List<Duyuru>)Session["duyuru"]).Where(x => x.ID == ((Int64)Session["GuncellenenDuyuruID"])).ToList()[0];
                            lblHaberIcerik.Text = ((Duyuru)Session["GuncellenenDuyuru"]).Icerik;
                        }
                    }
                }
                else
                {
                    Session["GuncellenenDuyuru"] = null;
                    Session["GuncellenenDuyuruID"] = Convert.ToInt64(gvDuyuru.DataKeys[gvDuyuru.SelectedIndex].Values[0]);
                    Session["GuncellenenDuyuru"] = ((List<Duyuru>)Session["duyuru"]).Where(x => x.ID == ((Int64)Session["GuncellenenDuyuruID"])).ToList()[0];
                    lblHaberIcerik.Text = ((Duyuru)Session["GuncellenenDuyuru"]).Icerik;
                }
            }
            catch (Exception ex)
            {
                using (ExceptionLogDao el = new ExceptionLogDao())
                {
                    el.HataLogYaz(DateTime.Now.ToString() + "  " + ex.ToString());
                }
                MesajVer(ConfigurationManager.AppSettings["HataMesaji"].ToString());
            }
        }
    }
}
